class AddPdfsStoredProcedures < ActiveRecord::Migration
  def self.up
    execute "CREATE PROCEDURE [centros].[DetalleBonificacionesConvenio] \n" +
      "@ConvenioId int = -1 \n" +
      "AS BEGIN \n" +
      "SET NOCOUNT ON \n" +
      " SELECT centros.entradas_catalogos.valor AS Marca, centros.bonificaciones.porcentaje, centros.bonificaciones.destino, centros.bonificaciones.objetivo_mensual FROM centros.bonificaciones INNER JOIN centros.entradas_catalogos ON centros.bonificaciones.marca_id = centros.entradas_catalogos.id \n"+
      " WHERE (centros.bonificaciones.convenio_id = @ConvenioId) \n"+
      "END"
    
    execute "CREATE PROCEDURE [centros].[DetalleCompromisosConvenio] "+
      "	@ConvenioId int = -1 "+
      "AS "+
      "BEGIN "+
      "	SET NOCOUNT ON;"+
      "SELECT     descripcion, responsable, importe "+
      "FROM         centros.compromisos "+
      "WHERE     (convenio_id = @ConvenioId) "+
      "ORDER BY responsable "+
      "END"

    execute "CREATE PROCEDURE [centros].[DetallePresupuestosOrdenDeSalida] "+
      "	@OrdenId int "+
      "AS BEGIN "+
      "	SET NOCOUNT ON;"+
      "SELECT     UPPER(centros.entradas_catalogos.valor) AS Marca, centros.presupuestos.rubro_id AS [ID Rubro], centros.orden_salidas.monto_total_ieps AS [Monto Total] "+
      "FROM         centros.orden_salidas INNER JOIN "+
      "                      orden_salida_presupuestos ON centros.orden_salidas.id = orden_salida_presupuestos.orden_salida_id INNER JOIN "+
      "                      centros.presupuestos ON orden_salida_presupuestos.presupuesto_id = centros.presupuestos.id INNER JOIN "+
      "                      centros.entradas_catalogos ON centros.presupuestos.marca_id = centros.entradas_catalogos.alternate_id INNER JOIN "+
      "                      centros.catalogos ON centros.entradas_catalogos.catalogo_id = centros.catalogos.id "+
      "WHERE     (centros.catalogos.id = 33) AND (centros.orden_salidas.id = @OrdenId) "+
      "END"
    
    execute "CREATE PROCEDURE [centros].[NombreEjecutivo] "+
      "	@EjecutivoId int "+
      "AS BEGIN "+
      "	SET NOCOUNT ON; "+
      "SELECT     UPPER(nombre + ' ' + primer_apellido + ' ' + segundo_apellido) AS [Nombre Ejecutivo] "+
      "FROM         centros.ejecutivos "+
      "WHERE     (id = @EjecutivoId)" +
      "END"
    
    execute "CREATE PROCEDURE [centros].[OrdenDeSalida] "+
      "	@OrdenId int = -1"+
      "AS BEGIN"+
      "	SET NOCOUNT ON;"+
      "SELECT     RIGHT('000000' + CAST(centros.orden_salidas.id AS varchar), 6) + '/' + CAST(YEAR(centros.orden_salidas.created_at) AS varchar) AS Folio, "+
      "                      centros.centros.nombre_comercial AS [Nombre del destinatario], "+
      "                      centros.centros.calle + ' NÚMERO ' + centros.centros.num_exterior + ' - ' + centros.centros.num_interior + '. COLONIA ' + centros.centros.colonia + '. CÓDIGO POSTAL ' +" +
      "                       centros.centros.codigo_postal + ', ' + UPPER(centros.centros.ciudad) AS [Domicilio CDC], centros.orden_salidas.monto_total_ieps AS [Monto total], "+
      "                      UPPER(CAST(centros.orden_salidas.observaciones AS varchar)) AS Observaciones, UPPER(centros.orden_salidas.en_atencion_de) AS [En atención de], "+
      "                      UPPER(centros.ejecutivos.nombre + ' ' + centros.ejecutivos.primer_apellido + ' ' + centros.ejecutivos.segundo_apellido) AS [Nombre Ejecutivo], "+
      "                      ISNULL(centros.ejecutivos.reporta_a_id, 0) AS [Tiene Jefe de Grupo] "+
      "FROM         centros.orden_salidas INNER JOIN "+
      "                      centros.centros ON centros.orden_salidas.centro_id = centros.centros.id INNER JOIN "+
      "                      centros.ejecutivos ON centros.centros.ejecutivo_id = centros.ejecutivos.id "+
      "WHERE     (centros.orden_salidas.id = @OrdenId)"+
      "END"
    
    execute "CREATE PROCEDURE [centros].[DetalleElementosOrdenDeSalida] "+
      "	@OrdenId int "+
      "AS "+
      "BEGIN "+
      "	SET NOCOUNT ON; "+
      "SELECT     centros.productos.clave AS Codigo, centros.orden_salida_detalles.cantidad AS Botellas, UPPER(centros.productos.descripcion) AS [Descripcion de producto], "+
      "                      centros.productos.costo_cuervo AS [Costo Cuervo], centros.productos.costo_cuervo * centros.orden_salida_detalles.cantidad AS Importe "+
      "FROM         centros.orden_salida_detalles INNER JOIN "+
      "                      centros.productos ON centros.orden_salida_detalles.producto_id = centros.productos.id "+
      "WHERE     (centros.orden_salida_detalles.orden_salida_id = @OrdenId)"+
      "END"
  end

  def self.down
    execute "DROP PROCEDURE [centros].[DetalleBonificacionesConvenio]"
    execute "DROP PROCEDURE [centros].[DetalleCompromisosConvenio]"
    execute "DROP PROCEDURE [centros].[DetallePresupuestosOrdenDeSalida]"
    execute "DROP PROCEDURE [centros].[NombreEjecutivo]"
    execute "DROP PROCEDURE [centros].[OrdenDeSalida]"
    execute "DROP PROCEDURE [centros].[DetalleElementosOrdenDeSalida]"
  end
end
